package com.wl.common.system.service;


import com.wl.common.core.web.dto.DataStoreDTO;
import com.wl.common.system.support.dto.SysResourceDTO;
import com.wl.common.system.support.dto.query.SysResourceQueryDTO;
import com.wl.common.system.support.vo.SysResourceVO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

import java.util.List;
import java.util.Set;

/**
 * 资源表 前端控制器
 *
 * @author wanglin
 * @since 2023-09-18
 */
public interface SysResourceService {

    /**
     * 分页
     *
     * @param pageable
     * @param queryDto
     * @return
     */
    DataStoreDTO<SysResourceVO> page(Pageable pageable, SysResourceQueryDTO queryDto);

    /**
     * 分页
     *
     * @param pageable
     * @param queryDto
     * @return
     */
    DataStoreDTO<SysResourceVO> resourcePage(Pageable pageable, SysResourceQueryDTO queryDto);

    /**
     * 列表
     *
     * @param sort
     * @param queryDto
     * @return
     */
    List<SysResourceVO> list(Sort sort, SysResourceQueryDTO queryDto);

    /**
     * 列表
     *
     * @param sort
     * @param queryDto
     * @return
     */
    List<SysResourceVO> resourceList(Sort sort, SysResourceQueryDTO queryDto);

    /**
     * 保存
     *
     * @param dto
     */
    void save(SysResourceDTO dto);

    /**
     * 更新
     *
     * @param dto
     */
    void update(SysResourceDTO dto);

    /**
     * 查看
     *
     * @param id
     * @return
     */
    SysResourceVO get(String id);

    /**
     * 删除
     *
     * @param ids
     */
    void delete(Set<String> ids);

    /**
     * 树形资源列表分页
     *
     * @param pageable
     * @param queryDto
     * @return
     */
    DataStoreDTO<SysResourceVO> treeResourcePage(Pageable pageable, SysResourceQueryDTO queryDto);

    /**
     * 树形资源列表
     *
     * @return
     */
    List<SysResourceVO> treeResourceList();
//    List<SysResourceVO> treeResourceList(Sort sort, SysResourceQueryDTO queryDto);
}
